Table of Contents

A/B-тестирование

О чем проект

Цель проекта — провести оценку результатов A/B-теста.

Задачи: 1) Оценить корректность проведения теста, в т.ч.:

2) Проанализировать результаты теста.

Данные: основной и вспомогательные датасеты с действиями и характеристиками пользователей.

Техническое задание:

Этапы исследования:

  1. Обзор данных и предобработка
  2. Оценка корректности проведения теста
  3. Исследовательский анализ данных
  4. Оценка результатов A/B-тестирования
  5. Подведение итогов, разработка рекомендаций по увеличению выручки

Обзор данных и предобработка

Обзор данных:

• /datasets/ab_project_marketing_events.csv — календарь маркетинговых событий на 2020 год;

Структура файла:

• /datasets/final_ab_new_users.csv — все пользователи, зарегистрировавшиеся в интернет-магазине в период с 7 по 21 декабря 2020 года;

Структура файла:

• /datasets/final_ab_events.csv — все события новых пользователей в период с 7 декабря 2020 по 4 января 2021 года;

Структура файла:

• /datasets/final_ab_participants.csv — таблица участников тестов.

Структура файла:

Пропуски есть только в столбце details таблицы с событиями events. В дополнительных данных вполне могут быть такие пропуски, поэтому оставим их как есть.

Типы данных соответствуют содержанию, кроме формата даты. Его нужно заменить на datetime.

Явных дубликатов не выявлено, поверим наличие неявных дубликатов во всех столбцах с типом данных object (не считая идентификатор пользователя user_id и даты).

Неявных дубликатов не выявлено. Однако в, в наименованиях A/B-тестов в таблице с участниками participants есть конкурирующий тест - interface_eu_test. Эти данные нужно оставить, т.к. могут быть пользователи, которые попали в оба теста. Наличие таких пересечений проверим при оценке корректности.

Всего в объединенном датасете 16666 уникальных пользователей и 110368 событий. Из них 6701 человека являются участниками теста recommender_system_test.

Оценка корректности

Проверка маркетинговых кампаний

Нам нужно проверить не пересекалось ли по времени проведение теста с различными маркетинговыми событиями.

Во время указанного времени (финиш позже 12 июля 2020 г., старт раньше 4 января 2021 г.) были проведены две маркетинговые кампании:

Старт этих маркетинговых кампаний совпадает c тестом - набор новых пользователей по условию ТЗ заканчивается 21 декабря 2020 г. Маркетинговые активности могли повлиять на поведение пользователей, однако они касаются всех участников теста. Будем иметь это в виду.

Проверка дат

Согласно ТЗ есть следующие ограничения по датам:

Ожидаемый эффект планируется анализировать в течение 14 дней, значит лафтайм пользователей должен быть не более 14 дней.

В техническом задании было указано, что датасет final_ab_events.csv содержит записи до 4 января 2021 г., хотя последняя запись имеет дату 30 декабря 2020 г. Тест был остановлен раньше.

Даты регистрации новых пользователей являются корректными - от 7 до 21 декабря 2020 г.

Нам следует отфильтровать пользователей с лайфтаймом больше, чем горизонт событий.

В датасете участников нашего теста есть 270 человек, у которых лайфтайм больше 14 дней. Они составляют всего 4% от общего числа. Процент незначительный, поэтому можем их удалить.

После удаления пользователей с лайфтаймом больше 14 дней, в датасете участников теста осталось 6431 человек.

Проверка участников теста

Проверим соответствие участников теста условиям ТЗ:

Дополнительно изучим:

Количество участников и распределение по группам

Участников из тестовой группы A (3668 чел.) больше, чем из контрольной группы B (2763 чел.). Размеры групп различаются на 905 человек. Всего участников теста до возможной чистки - 6431 человек, что больше ожидаемого по ТЗ на 7.18%.

Проверим есть ли пользователи, которые находятся в обеих тестовых группах.

Дублирующихся в обоих группах участников теста recommender_system_test не найдено. Далее проверим нет ли пересечений между нашим тестом recommender_system_test и конкурирующим тестом interface_eu_test.

Тесты были проведены в одно время, поэтому получилось так, что их участники пересекаются. В датасете есть 1602 пользователя (9.61% от общего числа), которые стали участниками обоих тестов recommender_system_test и interface_eu_test. Участие в двух тестах может исказить результаты, поэтому удалим их данные из даатсета.

После удаления пересекающихся с другим тестом пользователей, количество участников теста recommender_system_test уменьшилось до 4893 человек.

Участники, не совершившие события

В датасете participants_rst есть пустые значения в столбцах с датой и наименованием событий - event_dt и event_name. Оценим количество уникальных пользователей, у которых нет совершенных событий.

2311 участников (47.23%) теста не совершили за период теста ни одного события. Число совпадает с количеством пропусков в датасете.

Попытаемся выяснить с чем это связано.

Участники без событий регистрировались в приложении с 7 по 21 декабря, то есть на протяжении всего тестового периода. Проверим есть ли особенности в этом, возможно в определенные даты в приложении были технические сложности.

Участники без событий фиксируются на протяжении всего тестового периода. Больше всего их было зарегистрировано 13 декабря 2020 г. С 14 декабря 2020 г. регистраций новых пользователей стало больше, но количество неактивных пользователей не выросло.

При анализе устройств, которые использовали участники без событий, также не выявлено особенностей.

При анализе регионов участников без событий также не выявлено особенностей.

В контрольной группе значительно выше доля пользователей (70.62%), не совершавших события. В тестовой группе неактивных пользователей всего 29.5%.

В целом, при наличии таких пользователей группы становятся неоднородными. Поэтому удалим неактивных пользователей из датасета.

После удаления неактивных пользователей, количество участников теста recommender_system_test уменьшилось до 2582 человека.

Обзор стран участников

Ожидаемое количество новых пользователей из ЕС было указано как 15%. Проверим сколько пользователей пришло в разбивке по регионам.

Процент участников теста из ЕС от всех новых пользователей из ЕС составяет 14.73%, что примерно соответсвует заявленным в ТЗ 15%.

Выводы оценки корректности

Проверим заново количество участников теста и как они распределены по группам после всех манипуляций.

1) В техническом задании было указано, что датасет final_ab_events.csv содержит записи до 4 января 2021 г., хотя последняя запись имеет дату 30 декабря 2020 г. Тест был остановлен раньше.

Даты регистрации новых пользователей являются корректными - от 7 до 21 декабря 2020 г.

2) Во время проведения теста были проведены две маркетинговые кампании:

Маркетинговые активности могли повлиять на поведение пользователей, однако они касаются всех групп теста одинаково. Будем иметь это в виду.

3) Дублирующихся в обоих группах участников теста recommender_system_test не найдено.

4) Есть 1602 пользователя (9.61% от общего числа), которые стали участниками обоих тестов recommender_system_test и interface_eu_test. Тесты были проведены в одно время, поэтому получилось так, что их некоторые их участники пересекаются. Участие в двух тестах может исказить результаты, поэтому их данные из датасета удалены.

5) 2311 участников (47.23%) теста не совершили за период теста ни одного события. Эти случаи не связаны с датами, девайсами. В контрольной группе значительно выше доля пользователей (70.62%), не совершавших события. В тестовой группе эта доля составляет всего 29.5%. В целом, при наличии таких пользователей группы становятся неоднородными. Поэтому неактивных пользователей из датасета удалили.

6) Процент участников теста из ЕС от всех новых пользователей из ЕС составяет 14.73%, что примерно соответсвует заявленным в ТЗ 15%.

7) До чистки участников теста было 6431 чел. (больше ожидаемого на 7.18%). Участников из тестовой группы A (3668 чел.) было больше, чем из контрольной группы B (2763 чел.). Размеры групп различаются на 905 человек.

После чистки участников теста стало 2582 чел. (меньше ожидаемого на 56.97%). Участников из тестовой группы A (1962 чел.) было больше, чем из контрольной группы B (620 чел.). Размеры групп различаются на 1342 человек.

Исследовательский анализ данных

Частота событий на пользователя

Изучим как распределено количество событий на пользователя в разбивке на группы.

В среднем частота событий на одного пользователя в группе A составляет 7 единиц, а в группе B - 5 единиц.

По гистограмме видно, что оба распределения имеют схожие формы, просто частота событий в тестовой группе A больше.

Регистрация новых пользователей

У тестовой группы A набор новых пользователей активизировался с 14 декабря 2020 г., а у контрольно группы B все осталось в прежнем темпе. До этой даты темпы регистрации новых пользователей были примерно одинаковыми. Сложно предположить с чем э это связано, но это точно нехорошо будет влиять на однородность групп.

События по дням

Поведение пользователей разных групп заметно различается. Активность группы A резко возросла с 14 декабря 2020 г. в связи с ростом числа новых пользователей, а у группы B изначально была хорошая активность. В обеих группах пик активности был 21 декабря 2020 г., потом все плавно пошло на спад до конца периода. Снижение активности можно объяснить приближением праздничных дней.

Ранее в п. 3.1. мы видели, что в конце декабря было проведено 2 маркетинговые акции:

По графику можно сказать, что заметного влияния не поведение пользователей эти акции не оказали.

Воронка событий

В датасете фиксируется 4 вида события:

По количеству уникальных пользователей до оплаты дошло чуть меньше людей, чем до открытия корзины, что нарушает логику воронки. Возможно некоторые пользователи оплачивают товары пользуясь функцией "быстрой оплаты" / "мгновенной покупки". Поэтому добавим столбец с нумерацией этапов воронки, чтобы не нарушать поэтапность из-за количества пользователей.

Больше всего пользователей теряется между регистрацией login и просмотром продукта product_page.

В целом до целевого события (purchase) доходит 798 чел. (30.91% пользователей), а до корзины product_cart 780 человек (30.21% пользователей).

Выводы исследовательского анализа данных и общие инсайты

Особенности данных нужно учесть, прежде чем приступать к A/B-тестированию:

Результаты теста

По таблицам и визуализации можно сказать, что ощутимое улучшение есть только на этапе просмотра карточке товаров - product_page.

Ожидаемый эффект, что за 14 дней с момента регистрации в системе пользователи покажут улучшение конверсии не менее, чем на 10%, оправдать не удалось.

Для проведения теста будем использовать - гипотезы о равенстве долей. Сформулируем нулевую и альтернативную гипотезу:

Нулевая гипотеза: Конверсии между этапами воронки в обеих группах не имеют статистических различий.

Альтернативная гипотеза: Конверсии между этапами воронки в обеих группах разные.

Подготовка к тестированию:

У нас есть три события (не считая login), и в ходе тестирования нужно будет сравнивать конверсии на всех трех этапах. Значит нам предстоит провести три A/B-тестирования.

Это множественные сравнения, поэтому нужно применить поправку Бонферрони - статистическую значимость нужно "разбить" на количество сравнений. Их у нас в сумме 3 единицы, поэтому bonferroni_alpha = alpha / 3.

Итог: В результате тестирования, статистически значимая разница конверсий в группах А и В не выявлена на втором и третьем шаге воронки (product_cart и purchase), на первом шаге (product_page) найти статистически значимую разницу удалось. Значит внедрение рекомендательной системы recommender_system_test способствует только улучшению просматриваемости карточек товаров.

Учитывая особенности условий проведения тестирования и недостаточно корректных данных можно сделать вывод, что эффективность внедрения рекомендательной системы recommender_system_test при данных условиях доказать не удалось.

Выводы и рекомендации

На старте мы имели 2 датасета - один об источниках, с которого пользователи установили приложение, второй о дейтсвиях пользователей внутри приложения. Данные являются полными, не содержат пропусков.

Что изменилось после предобработки:

Оценка корректности данных: 1) Тест был остановлен раньше, последняя запись имеет дату 30 декабря 2020 г. Даты регистрации новых пользователей являются корректными - от 7 до 21 декабря 2020 г.

2) Во время проведения теста были проведены две маркетинговые кампании:

Маркетинговые активности могли повлиять на поведение пользователей, однако они касаются всех групп теста одинаково. Будем иметь это в виду.

3) Дублирующихся в обоих группах участников теста recommender_system_test не найдено.

4) Есть 1602 пользователя (9.61% от общего числа), которые стали участниками обоих тестов recommender_system_test и interface_eu_test. Тесты были проведены в одно время, поэтому получилось так, что их некоторые их участники пересекаются. Участие в двух тестах может исказить результаты, поэтому их данные из датасета удалены.

5) 2311 участников (47.23%) теста не совершили за период теста ни одного события. Эти случаи не связаны с датами, девайсами. В контрольной группе значительно выше доля пользователей (70.62%), не совершавших события. В тестовой группе эта доля составляет всего 29.5%. В целом, при наличии таких пользователей группы становятся неоднородными. Поэтому неактивных пользователей из датасета удалили.

6) Процент участников теста из ЕС от всех новых пользователей из ЕС составяет 14.73%, что примерно соответсвует заявленным в ТЗ 15%.

7) До чистки участников теста было 6431 чел. (больше ожидаемого на 7.18%). Участников из тестовой группы A (3668 чел.) было больше, чем из контрольной группы B (2763 чел.). Размеры групп различаются на 905 человек.

После чистки участников теста стало 2582 чел. (меньше ожидаемого на 56.97%). Участников из тестовой группы A (1962 чел.) было больше, чем из контрольной группы B (620 чел.). Размеры групп различаются на 1342 человек.

Исследовательский анализ данных выявил следующие инсайты:

Проверка результатов теста:

ИТОГО: Учитывая особенности условий проведения тестирования и недостаточно корректных данных можно сделать вывод, что эффективность внедрения реклмендательной системы recommender_system_test доказать не удалось.

Рекомендации: